import { BigNumber } from 'bignumber.js'

/**
 * 加
 * @param a
 * @param b
 * @returns
 */
export function add(a: number, b: number): number {
  return BigNumber(a).plus(b).toNumber()
}

/**
 * 减
 * @param a
 * @param b
 * @returns
 */
export function sub(a: number, b: number): number {
  return BigNumber(a).minus(b).toNumber()
}

/**
 * 乘
 * @param a
 * @param b
 * @returns
 */
export function mul(a: number, b: number): number {
  return BigNumber(a).multipliedBy(b).toNumber()
}

/**
 * 除
 * @param a
 * @param b
 * @returns
 */
export function div(a: number, b: number): number {
  return BigNumber(a).dividedBy(b).toNumber()
}

/**
 * 小数去尾
 * @param num
 * @param dec 保留小数位数
 * @returns
 */
export function floor(num: number, dec = 2): number {
  const multiple = 10 ** dec
  return div(Math.floor(mul(num, multiple)), multiple)
}

/**
 * 小数四舍五入
 * @param num
 * @param dec 保留小数位数
 * @returns
 */
export function round(num: number, dec = 2): number {
  const multiple = 10 ** dec
  return div(Math.round(mul(num, multiple)), multiple)
}
